<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
	<meta charset="utf-8"> 
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="width=500" />
	<meta name="keywords" content="ScrollMagic, example, scrolling, attaching, scrollbar, manipulating, tweens, tweenmax" />
	<meta name="author"	content="Jan Paepke (www.janpaepke.de)" />
	<title>Manipulating Tweens - Examples - ScrollMagic</title>

	<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic|Josefin+Slab:400,700italic' rel='stylesheet' type='text/css'>
	<link rel="stylesheet" href="../../assets/css/normalize.css" type="text/css">
	<link rel="stylesheet" href="../../assets/css/style.css" type="text/css">
	<link rel="stylesheet" href="../../assets/css/examples.css" type="text/css">
	<link rel="shortcut icon" href="../../assets/img/favicon.ico" type="image/x-icon">

	<script type="text/javascript" src="../../assets/js/lib/jquery.min.js"></script>
	<script type="text/javascript" src="../../assets/js/lib/highlight.pack.js"></script>
	<script type="text/javascript" src="../../assets/js/lib/modernizr.custom.min.js"></script>
	<script type="text/javascript" src="../../assets/js/examples.js"></script>
	
	<script type="text/javascript" src="../../assets/js/lib/gsap3/gsap.min.js"></script>
	<script type="text/javascript" src="../../scrollmagic/uncompressed/ScrollMagic.js"></script>
	<script type="text/javascript" src="../../scrollmagic/uncompressed/plugins/animation.gsap.js"></script>
	<script type="text/javascript" src="../../scrollmagic/uncompressed/plugins/debug.addIndicators.js"></script>
</head>
<body>
	<ul id="menu"></ul>
	<div id="content-wrapper">
		<div id="example-wrapper">
			<div class="scrollContent">
				<section id="titlechart">
					<div id="description">
						<h1 class="badge gsap">Manipulating Tweens</h1>
						<h2>Flexible tweening targets.</h2>
						<p>
							Like the rest of ScrollMagic, tweens can be updated on the fly as well.<br>
							In this example the progress of the tween is reset before updating it and then readded to the scene.<br>
							If this wasn't done, the tween would start at the current position with the current parameters.
						</p>
						<a href="#" class="viewsource">view source</a>
					</div>
				</section>
				<section class="demo">
					<form class="move">
						<fieldset id="tweenparams">
							<legend>Tween Parameters</legend>
							<div>
								<label for="scaleX">scaleX</label>
								<div class="slider liveupdate"></div>
								<input type="text" id="scaleX" size="3" value="1.0" min="0.1" max="3" step="0.1">
							</div>
							<div>
								<label for="scaleY">scaleY</label>
								<div class="slider liveupdate"></div>
								<input type="text" id="scaleY" size="3" value="1.0" min="0.1" max="3" step="0.1">
							</div>
						</fieldset>
					</form>
					<div class="spacer s1"></div>
					<div id="trigger" class="spacer s1"></div>
					<div class="spacer s0"></div>
					<div id="target" class="box1 orange">
						<p>Squeeze me tight.</p>
						<a href="#" class="viewsource">view source</a>
					</div>
					<div class="spacer s2"></div>
					<script>
						// init controller
						var controller = new ScrollMagic.Controller();

						// build tween
						var tween = TweenMax.to("#target", 0.5, {css: {scaleX: 1, scaleY: 1}, ease: Linear.easeNone});

						// build scene
						var scene = new ScrollMagic.Scene({triggerElement: "#trigger", duration: 300})
										.setTween(tween)
										.addIndicators() // add indicators (requires plugin)
										.addTo(controller);

						$("#tweenparams input").on("change", function () {
							var params = {css: {
								scaleX: parseFloat($("input#scaleX").val()),
								scaleY: parseFloat($("input#scaleY").val())
							}};
							// reset progress to start so changes do not occur from current position but from start
							tween.progress(0)
							// set set new tween parameters
							tween.updateTo(params, true);
							// re-add tween to reset position and to update
							scene.setTween(tween);
						});
					</script>
				</section>
				<div class="spacer s_viewport"></div>
			</div>
		</div>
	</div>
	<script type="text/javascript" src="../../assets/js/tracking.js"></script>
</body>
</html>
